package com.miniapp.service.impl;


import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.miniapp.entity.MiniUserEntity;
import com.miniapp.mapper.MiniUserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import  com.miniapp.utils.BaseUtils;

import org.springframework.beans.BeanUtils;

import com.miniapp.mapper.MiniUserTemplateInfoMapper;
import com.miniapp.entity.MiniUserTemplateInfoEntity;
import com.miniapp.service.MiniUserTemplateInfoService;

import java.util.HashMap;
import java.util.List;
import java.util.Map;


@Service("miniUserTemplateInfoService")
public class MiniUserTemplateInfoServiceImpl extends BaseServiceImpl<MiniUserTemplateInfoMapper,MiniUserTemplateInfoEntity> implements MiniUserTemplateInfoService {


    @Override
    public MiniUserTemplateInfoEntity findByUserTmpIdAndHome(Long tmpId) {
        return baseMapper.selectOne(new QueryWrapper<MiniUserTemplateInfoEntity>().eq("user_tmp_id",tmpId).eq("home",1));
    }

    @Override
    public List<MiniUserTemplateInfoEntity> findByUserTmpId(Long id) {
        return baseMapper.selectList(new QueryWrapper<MiniUserTemplateInfoEntity>().eq("user_tmp_id",id));
    }

    @Override
    public void updateInfoHome(Long tmpId) {
        baseMapper.updateInfoHome(tmpId);
    }

    @Override
    public void deleteByTmpId(Long tmpId) {
        baseMapper.deleteByTmpId(tmpId);
    }

    @Override
    public MiniUserTemplateInfoEntity newInfo(Long id) {
        MiniUserTemplateInfoEntity miniUserTemplateInfo = new MiniUserTemplateInfoEntity();
        miniUserTemplateInfo.setName("未命名页面");
        miniUserTemplateInfo.setTitle("未命名页面");
        miniUserTemplateInfo.setHome(0);
        miniUserTemplateInfo.setBgColor("#f5f5f5");
        miniUserTemplateInfo.setHeaderBg("#fff");
        miniUserTemplateInfo.setHeaderColor("#000");
        miniUserTemplateInfo.setUserTmpId(id);
        miniUserTemplateInfo.setData(new JSONArray().toJSONString());
        miniUserTemplateInfo.setMenuData(new JSONObject().toJSONString());
        baseMapper.insert(miniUserTemplateInfo);
        return miniUserTemplateInfo;
    }

    @Override
    public List<MiniUserTemplateInfoEntity> findByUserTmpIdNoTmpData(Long id) {

        return baseMapper.findByUserTmpIdNoTmpData(id);
    }

}
